iT邦幫忙

0

【零基礎 Revit API 教學】 #Day3 - 程式語言基本觀念

  • 分享至 

  • xImage
  •  

C Sharp(C#)介紹

在第一天的前言中有提到,許多對 Revit 外掛開發感興趣的人,經常因為未接觸過程式語言、覺得寫程式十分困難而卻步。因此,在開始使用 Revit API 前,要先介紹一些程式語言的基本觀念、語法,以及撰寫外掛時,經常會使用到的函式。其實程式語言沒有大家想像中的困難,既然他被稱為“語言”,那麼大家便能夠將它作為一門語言來看待。如同各國語言一般,程式語言也有自己的**「語法」**,若了解每段程式所表達意思,則能夠將一段程式由上而下翻譯成中文,如同一篇文章。


何謂變數?

程式語言中,最基本的就是**「變數」**,與數學的概念相同,一個 “數值會改變的數” 即為變數,例如 x=1,其中的 x 便是變數。只是在數學中,通常會使用特定的文字來作為變數名稱,如 x、y、Ɑ、Ɓ 等。但在程式語言中,可以任意為變數命名,如 name、test123、first_time 等。撰寫程式時可能會使用到幾十甚至上百個變數,因此,有好的命名原則及習慣,後續修改程式、查找變數時才能更加快速。

除此之外,變數又被區分為不同類型,程式語言中常使用的變數類型有三種,分別是字串(string)整數(int)浮點數(double、float)。單獨一個 “h” 被稱為 字元(char),而多個字元組合在一起就是字串,如 “hello”。整數及浮點數的定義與數學相同,例如 1、15、678,這些數字是整數,而 1.234、0.76、3.96,這些則是浮點數,只是程式中浮點數又被區分為 doule 及 float,兩者的區別在於容量的大小,float 有較大的容量,可以儲存小數點後較多位數的浮點數。

對於我們來說,數字 2 和 文字 是兩個完全不同的文字,我們能夠很清楚的分辨他們。但電腦的世界是由 0 和 1 組成的,對於電腦來說,這兩個文字可能同時都是以 010 來表示,因此我們才需要為變數定義類型,讓電腦能區分我們指的究竟是數字 2 還是 文字

變數的類型會被加註在變數名稱之前,例如 string name、int test123、double first_time,而這個為變數名命,並且指定變數類型的過程則稱為**「宣告」**。

既然必須為變數指定類型,就代表此變數後只能放置相同類型的值,例如 string name=“hello”、int test123=456、double first_time=3.1415。其中較特別的是,double 和 float 除了可以放置浮點數以外,其實也能夠放置整數,只是變數的類型牽涉到記憶體耗損量,因此通常不會宣告一個浮點數變數來放置整數。而這個在宣告變數的同時,給予變數一個指定值的過程則稱為**「初始化」**。

https://ithelp.ithome.com.tw/upload/images/20230918/20163329oFg8f9LnyB.jpg


何謂函式?

在寫程式的過程中,可能經常會重複使用某一段程式,為了方便,以及避免程式過於冗長,通常會將這段程式寫成一個「函式」,這樣便能用短短的一行程式,來呼叫實為一長段的程式內容。

以大家熟悉的事件來做舉例,當我們使用 iPhone 呼叫 Siri,讓它傳送訊息給某人時,iPhone 首先會打開應用程式,選取要傳送訊息的聯絡人,接著輸入要傳送的訊息內容,最後點擊 “傳送” 將訊息送出。而 “傳送訊息” 這個指令便是一個需要 “有輸入值” 的「函式」,如果只告訴 Siri “傳送訊息”,Siri 無法執行指令,因為既不知道要發送的 “訊息內容”,也不知道該將 “訊息傳送給誰”。而 “訊息內容” 及 “訊息傳送給誰”,便是 “傳送訊息” 這個函數的輸入值。若用程式語言來表示,就會是:

=> SendMessage( string content, string toWho );

當然,也會有 “沒有輸入值” 的「函式」,例如呼叫 Siri 打開手電筒,“打開手電筒” 成為一個函式,則不需要任何輸入值,Siri 也能清楚知道該執行的動作。若用程式語言表示,就會是:

=> OpenFlashlight();

最後,還有一個 “有回傳值” 的「函式」,例如呼叫 Siri 計算一加一等於多少,Siri 會回答 “二”。 此時,“加法計算” 為一個函式,此函式同時具有 “輸入值” 及 “回傳值”,輸入值為 “一”、“一”,回傳值則為 “二”。若用程式語言表示,就會是:

=> Calculate( int first_number, int second_number );

但若單純只呼叫函式 “Calculate(int first_number, int second_number)”,此時雖然函式有回傳值,卻沒有變數能夠儲存計算後的結果,此時可以在函式前方宣告一個變數,來儲存函式執行後所回傳的結果。至於是否要新增一個變數來儲存結果,則取決於後續使用到這個結果的頻率。

=> int sum = Calculate( int first_number, int second_number );

https://ithelp.ithome.com.tw/upload/images/20230918/20163329AccAzHAJpA.jpg


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言